var analysisFunc = function ($scope, $http, $timeout) {

    $scope.enterprises = [];
    $scope.enterpriseSelected = undefined;
    $scope.enterpriseInfo = undefined;
    $scope.currentModel = undefined;
    $scope.currentDate = undefined;
    $scope.dateList = [];
    $scope.analysisResult = undefined;
    $scope.showResult = false;


    $scope.getEnterpriseList = function () {
        $http({
            method: 'GET',
            url: 'display/enterprises',
        }).then(function (resp, status) {
            $scope.enterprises = resp.data.data;
            $scope.showEnterpriseDetail($scope.enterprises[0]);
            console.log("getEnterpriseList企业列表", resp.data.data);
        }, function (resp, status) {
            $scope.resp = resp;
            $scope.status = status;
        });
        // $scope.autoDisplay();
    };


    $scope.showEnterpriseDetail = function (enterprise) {
        console.log("showEnterpriseDetail点击企业", enterprise);

        // 当前选中企业
        $scope.enterpriseSelected = enterprise;

        $http({
            method: 'POST',
            headers : {
                'Content-Type' : 'application/json'
            },
            url: 'display/enterprise/basic-info',
            data: enterprise
        }).then(function (resp, status) {
            console.log("showEnterpriseDetail企业信息", resp);

            $scope.enterpriseInfo = resp.data;

            // MARK 后期需要经过计算获取雷达图数据
            // $scope.initRadarChart();

            $scope.getDateList();

        }, function (resp, status) {
            $scope.resp = resp;
            $scope.status = status;
        });
    };


    $scope.getDateList = function () {
        $http({
            method: 'POST',
            url: 'analysis/datelist',
            headers : {
                'Content-Type' : 'application/json'
            },
            data: {"enterpriseName": $scope.enterpriseSelected.name}
        }).then(function (resp, status) {
            console.log(resp.data);
            $scope.dateList = resp.data;
        }, function (resp, status) {
            $scope.resp = resp;
            $scope.status = status;
        });
    };


    $scope.analysis = function () {
        $scope.showResult=false;

        if($scope.currentDate === undefined) {
            swal({
                title: '请选择日期！',
                timer: 2000
            });
            return
        }

        if($scope.currentModel === undefined) {
            swal({
                title: '请选择模型！',
                timer: 2000
            });
            return
        }

        var model = $scope.currentModel;

        $http({
            method: 'POST',
            url: 'analysis/model',
            headers : {
                'Content-Type' : 'application/json'
            },
            data: {"date": $scope.currentDate, "model": $scope.currentModel}
        }).then(function (resp, status) {
            console.log("result", resp.data.result);
            $scope.analysisResult = resp.data.result;

            if (model == 1) {

            } else if (model == 2) {
                var analysisBtn = document.getElementById("analysis-btn");
                analysisBtn.classList.add("click");
                var time = Math.ceil((Math.random() + 2)*2000);
                $timeout(function () {
                    $scope.showResult = true;
                    analysisBtn.classList.remove('click');
                }, time);
            } else if (model == 3) {
                $scope.initRadarChart_woerbizhong(resp.data.result);
            } else if (model == 4) {
                $scope.initRadarChart_jiaquanpinggu(resp.data.result);
            }


        }, function (resp, status) {
            $scope.resp = resp;
            $scope.status = status;
        });
    };

    $scope.changeToAnalysis = function () {
        $scope.showResult=false;
        if($scope.currentDate !== undefined && $scope.currentModel !== undefined) {
            $scope.analysis();
        }
    }





    $scope.initRadarChart_woerbizhong = function (d){

        // MARK avg的值经评估后设定; data的真实值后期需要经过计算后取得
        var indicator = [
            {"name":"流动资产/ 流动负债", "max": 8},
            {"name":"净资产/ 负债合计", "max": 8},
            {"name":"资产/ 固定资产", "max": 8},
            {"name":"营业成本/ 存货", "max": 8},
            {"name":"营业收入/ 应收帐款", "max": 8},
            {"name":"营业收入/ 固定资产", "max": 8},
            {"name":"营业收入/ 净资产", "max": 8}];

        var data = d.values;
        console.log("arrdata",data);

        var rules = [2,1.5,2.5,8,6,4,3];




        var option = {
            backgroundColor: '#fafafa',
            tooltip: {},

            legend: {                        // 图例组件
                show: true,
                itemWidth: 10,                  // 图例标记的图形宽度。[ default: 25 ]
                itemHeight: 10,                 // 图例标记的图形高度。[ default: 14 ]
                itemGap: 30,                	// 图例每项之间的间隔。[ default: 10 ]横向布局时为水平间隔，纵向布局时为纵向间隔。
                orient: 'horizontal',             // 图例列表的布局朝向,'horizontal'为横向,''为纵向.

            },

            radar: [{                       // 雷达图坐标系组件，只适用于雷达图。
                center: ['50%', '50%'],             // 圆中心坐标，数组的第一项是横坐标，第二项是纵坐标。[ default: ['50%', '50%'] ]
                radius: '60%',                        // 圆的半径，数组的第一项是内半径，第二项是外半径。
                startAngle: 90,                     // 坐标系起始角度，也就是第一个指示器轴的角度。[ default: 90 ]
                name: {                             // (圆外的标签)雷达图每个指示器名称的配置项。
                    formatter: '{value}',
                    textStyle: {
                        fontSize: 10,
                        color: '#292929'
                    }
                },
                nameGap: 20,                        // 指示器名称和指示器轴的距离。[ default: 15 ]
                splitNumber: 5,                     // (这里是圆的环数)指示器轴的分割段数。[ default: 5 ]
                shape: 'polygon',                    // 雷达图绘制类型，支持 'polygon'(多边形) 和 'circle'(圆)。[ default: 'polygon' ]
                axisLine: {                         // (圆内的几条直线)坐标轴轴线相关设置
                    lineStyle: {
                        color: '#fff',                   // 坐标轴线线的颜色。
                        width: 1,                      	 // 坐标轴线线宽。
                        type: 'solid',                   // 坐标轴线线的类型。
                    }
                },
                splitLine: {                        // (这里是指所有圆环)坐标轴在 grid 区域中的分隔线。
                    lineStyle: {                    // 分隔线颜色
                        width: 0.5, 							 // 分隔线线宽
                    }
                },
                splitArea: {                        // 坐标轴在 grid 区域中的分隔区域，默认不显示。
                    show: true,
                    areaStyle: {                            // 分隔区域的样式设置。
                        // color: ['rgba(200,200,200,0.3)','rgba(250,250,250,0.3)'],       // 分隔区域颜色。分隔区域会按数组中颜色的顺序依次循环设置颜色。默认是一个深浅的间隔色。
                    }
                },
                indicator: indicator
            }],
            series: [{         // 系列名称,用于tooltip的显示，legend 的图例筛选，在 setOption 更新数据和配置项时用于指定对应的系列。
                type: 'radar',              // 系列类型: 雷达图
                itemStyle: {                // 折线拐点标志的样式。
                    normal: {                   // 普通状态时的样式
                        lineStyle: {
                            width: 1
                        },
                        opacity: 0.3
                    },
                    emphasis: {                 // 高亮时的样式
                        lineStyle: {
                            width: 5
                        },
                        opacity: 1
                    }
                },
                data: [{
                    name: "标准值",
                    value: rules,
                    symbol: 'circle',
                    symbolSize: 5,
                    label: {
                        normal: {
                            show: true,
                            position: 'top'
                        }
                    },
                    lineStyle: {
                        normal: {
                            opacity: 0.5
                        }
                    },
                    areaStyle: {
                        normal: {
                            color: '#c2615f'
                        }
                    }
                },{
                    name: "实际值",
                    value: data,
                    symbol: 'circle',
                    symbolSize: 5,
                    label: {
                        normal: {
                            show: true,
                            position: 'top'
                        }
                    },
                    lineStyle: {
                        normal: {
                            opacity: 0.5
                        }
                    },
                    areaStyle: {
                        normal: {
                            color: '#2f4554'
                        }
                    }
                }]
            } ]
        };

        echarts.init(document.getElementById('radarChart_woerbizhong')).dispose();

        var echartsWarp = document.getElementById("radarChart_woerbizhong");


        var radarChart = echarts.init(echartsWarp);// 基于准备好的dom，初始化echarts实例

        // 使用刚指定的配置项和数据显示图表。
        radarChart.setOption(option);

        window.addEventListener("resize", function () {
            radarChart.resize();
        });
    };


    $scope.initRadarChart_jiaquanpinggu = function (d){

        // MARK avg的值经评估后设定; data的真实值后期需要经过计算后取得
        var indicator = [
            {"name":"财务结构", "max": 5},
            {"name":"现金流量", "max": 5},
            {"name":"偿债能力", "max": 5},
            {"name":"经营能力", "max": 5},
            {"name":"经营效益", "max": 5}];

        var data = [];
        data.push(d.caiwujiegou);
        data.push(d.xianjinliuliang);
        data.push(d.changzhainengli);
        data.push(d.jingyingnengli);
        data.push(d.jingyingxiaoyi);

        console.log(d);
        console.log(data);




        var option = {
            backgroundColor: '#fafafa',
            tooltip: {},

            legend: {                        // 图例组件
                show: true,
                itemWidth: 10,                  // 图例标记的图形宽度。[ default: 25 ]
                itemHeight: 10,                 // 图例标记的图形高度。[ default: 14 ]
                itemGap: 30,                	// 图例每项之间的间隔。[ default: 10 ]横向布局时为水平间隔，纵向布局时为纵向间隔。
                orient: 'horizontal',             // 图例列表的布局朝向,'horizontal'为横向,''为纵向.

            },

            radar: [{                       // 雷达图坐标系组件，只适用于雷达图。
                center: ['50%', '50%'],             // 圆中心坐标，数组的第一项是横坐标，第二项是纵坐标。[ default: ['50%', '50%'] ]
                radius: '60%',                        // 圆的半径，数组的第一项是内半径，第二项是外半径。
                startAngle: 90,                     // 坐标系起始角度，也就是第一个指示器轴的角度。[ default: 90 ]
                name: {                             // (圆外的标签)雷达图每个指示器名称的配置项。
                    formatter: '{value}',
                    textStyle: {
                        fontSize: 10,
                        color: '#292929'
                    }
                },
                nameGap: 20,                        // 指示器名称和指示器轴的距离。[ default: 15 ]
                splitNumber: 5,                     // (这里是圆的环数)指示器轴的分割段数。[ default: 5 ]
                shape: 'polygon',                    // 雷达图绘制类型，支持 'polygon'(多边形) 和 'circle'(圆)。[ default: 'polygon' ]
                axisLine: {                         // (圆内的几条直线)坐标轴轴线相关设置
                    lineStyle: {
                        color: '#fff',                   // 坐标轴线线的颜色。
                        width: 1,                      	 // 坐标轴线线宽。
                        type: 'solid',                   // 坐标轴线线的类型。
                    }
                },
                splitLine: {                        // (这里是指所有圆环)坐标轴在 grid 区域中的分隔线。
                    lineStyle: {                    // 分隔线颜色
                        width: 0.5, 							 // 分隔线线宽
                    }
                },
                splitArea: {                        // 坐标轴在 grid 区域中的分隔区域，默认不显示。
                    show: true,
                    areaStyle: {                            // 分隔区域的样式设置。
                        color: ['rgba(250,250,250,0.3)','rgba(200,200,200,0.3)'],       // 分隔区域颜色。分隔区域会按数组中颜色的顺序依次循环设置颜色。默认是一个深浅的间隔色。
                    }
                },
                indicator: indicator
            }],
            series: [{         // 系列名称,用于tooltip的显示，legend 的图例筛选，在 setOption 更新数据和配置项时用于指定对应的系列。
                type: 'radar',              // 系列类型: 雷达图
                itemStyle: {                // 折线拐点标志的样式。
                    normal: {                   // 普通状态时的样式
                        lineStyle: {
                            width: 1
                        },
                        opacity: 0.3
                    },
                    emphasis: {                 // 高亮时的样式
                        lineStyle: {
                            width: 5
                        },
                        opacity: 1
                    }
                },
                data: [{
                    name: "",
                    value: data,
                    symbol: 'circle',
                    symbolSize: 5,
                    label: {
                        normal: {
                            show: true,
                            position: 'top'
                        }
                    },
                    lineStyle: {
                        normal: {
                            opacity: 0.5
                        }
                    },
                    areaStyle: {
                        normal: {
                            color: '#c2615f'
                        }
                    }
                }
                ]
            } ]
        };

        echarts.init(document.getElementById('radarChart_jiaquanpinggu')).dispose();

        var echartsWarp = document.getElementById("radarChart_jiaquanpinggu");


        var radarChart = echarts.init(echartsWarp);// 基于准备好的dom，初始化echarts实例

        // 使用刚指定的配置项和数据显示图表。
        radarChart.setOption(option);

        window.addEventListener("resize", function () {
            radarChart.resize();
        });
    };




};



indexApp.controller('analysisCtrl', analysisFunc);

indexApp.filter('trustHtml', function ($sce) {
    return function (input) {
        return $sce.trustAsHtml(input);
    }
});